//package com.ews.onlineexchange.service.test;
//
//import java.io.IOException;
//import java.io.Serializable;
//import java.util.ArrayList;
//import java.util.List;
//
//
//public class MessagePushService implements Serializable {
//
//	/**
//	 * 
//	 */
//	private static final long serialVersionUID = 1L;
//	
////	public static void pushMessageToSingle( ) {
////		IGtPush push = new IGtPush(PushAccount.PUSH_URL, PushAccount.APP_KEY, PushAccount.MASTER_SECRET);
////		
////		SingleMessage message = new SingleMessage();
////		TransmissionTemplate template = new TransmissionTemplate();
////		template.setAppId(PushAccount.APP_ID);
////		template.setAppkey(PushAccount.APP_KEY);
////		template.setTransmissionContent("测试用2222的透传文本");
////		template.setTransmissionType(2);
//////		模板设置好后塞进message里，同时可以配置这条message是否支持离线，以及过期时间等，单位毫秒
//////		若设置离线，个推推送系统会为当前不在线的用户缓存离线消息，个推现在支持为每个用户缓存多条离线消息，离线时间最多三天，三天后会删除该条离线消息
////		message.setData(template);
////		message.setOffline(true);
////		message.setOfflineExpireTime(1800 * 1000);
//////		新建一个推送目标，填入appid和clientId
//////		单推情况下只能设置一个推送目标，toList群推时，可以设置多个目标，目前建议一批设置50个左右。
////		Target target = new Target();
////		target.setAppId(PushAccount.APP_ID);
////		target.setClientId("afa5decc37e639cac882d5769f58394d");
////		
//////		调用IGtPush实例的toSingle接口，参数就是上面我们配置的message和target
////		IPushResult result = push.pushMessageToSingle(message, target);
////		String response = result.getResponse().toString();
////		System.out.println("返回值：" + response);
////	}
//	
////	public static void pushMessageToMultiple() {
////		IGtPush push = new IGtPush(PushAccount.PUSH_URL, PushAccount.APP_KEY, PushAccount.MASTER_SECRET);
////		
////		  ListMessage message = new ListMessage();
////          // 用户当前不在线时，是否离线存储,可选
////          message.setOffline(true);
////          // 离线有效时间，单位为毫秒，可选    
////          message.setOfflineExpireTime(1000 * 3600 * 12);
////          message.setData(getNotificationTemplateDemo("2","3"));
////          //message.PushNetWorkType = 0;        //判断是否客户端是否wifi环境下推送，1为在WIFI环境下，0为不限制网络环境。
////          //设置接收者
////          List<Target> targetList = new ArrayList<Target>();
////
////          Target target = new Target();
////  		  target.setAppId(PushAccount.APP_ID);
////  		  target.setClientId("0f675dcc51fb3219a6b297a9c52c1edf");
////  		  
////  		 Target target2 = new Target();
//// 		  target2.setAppId(PushAccount.APP_ID);
//// 		  target2.setClientId("afa5decc37e639cac882d5769f58394d");
////  		  
////          targetList.add(target);
////          targetList.add(target2);
////
////          String contentId = push.getContentId(message);
////          IPushResult pushResult = push.pushMessageToList(contentId, targetList);
////          System.out.println(pushResult.getResponse().toString());
////	}
////	
////	 public static NotificationTemplate getNotificationTemplateDemo(String title,String text) {
////         NotificationTemplate template = new NotificationTemplate();
////         template.setAppId(PushAccount.APP_ID);
////         template.setAppkey(PushAccount.APP_KEY);;
////         //通知栏标题
////         template.setTitle(title);
////         template.setText(text);
////     
////                  
////         //应用启动类型，1：强制应用启动  2：等待应用启动
////         template.setTransmissionType(1);
////         
////         //透传内容 
////         template.setTransmissionContent("dasdasdas");
////         //接收到消息是否响铃，true：响铃 false：不响铃  
////         template.setIsRing(true);   
////         //接收到消息是否震动，true：震动 false：不震动  
////         template.setIsVibrate(true);        
////         //接收到消息是否可清除，true：可清除 false：不可清除   
////         template.setIsClearable(true);
////         //设置通知定时展示时间，结束时间与开始时间相差需大于6分钟，消息推送后，客户端将在指定时间差内展示消息（误差6分钟）
////
////         return template;
////     }
//	
//	 public static LinkTemplate getLinkTemplateDemo(String title,String text) {
//		 LinkTemplate template = new LinkTemplate();
//         template.setAppId(PushAccount.APP_ID);
//         template.setAppkey(PushAccount.APP_KEY);;
//         //通知栏标题
//         template.setTitle(title);
//         template.setText(text);
//         template.setUrl("http://www.baidu.com");
//         //接收到消息是否响铃，true：响铃 false：不响铃  
//         template.setIsRing(true);   
//         //接收到消息是否震动，true：震动 false：不震动  
//         template.setIsVibrate(true);        
//         //接收到消息是否可清除，true：可清除 false：不可清除   
//         template.setIsClearable(true);
//         //设置通知定时展示时间，结束时间与开始时间相差需大于6分钟，消息推送后，客户端将在指定时间差内展示消息（误差6分钟）
//
//         return template;
//     }
//	 
//	 public static List<String> getUserCid(String userId){
//	        List<String> clientList=new ArrayList<String>();
//	     
//	        return clientList;
//	    }
//	 
//	 public static void pushToUser(List<String> cids,String title,String content) throws IOException{  
//	        
//	        String pushText="{title:'"+title+"',content:'"+content+"',payload:'通知去干嘛这里可以自定义'}";  
//	        
//	        
//	        IGtPush push = new IGtPush(PushAccount.APP_KEY, PushAccount.MASTER_SECRET);  
//	        push.connect();  
//	        ListMessage message = new ListMessage();  
//	        message.setOffline(true);  
//	        // 离线有效时间，单位为毫秒，可选  
//	        message.setOfflineExpireTime(24 * 3600 * 1000);  
//	        //推送内容，格式为{title:'通知标题',content:'通知内容',payload:'通知去干嘛这里可以自定义'}  
//	        
//	        TransmissionTemplate template = new TransmissionTemplate();  
//
//	        template.setAppId(PushAccount.APP_ID);  
//	        template.setAppkey(PushAccount.APP_KEY);  
//	        template.setTransmissionContent(pushText);  
//	        template.setTransmissionType(2);  
//	        APNPayload payload = new APNPayload();  
//	        //payload.setBadge(0);  
//	        payload.setContentAvailable(1);  
//	        payload.setSound("default");  
//	        payload.setCategory("$由客户端定义");  
//	        //简单模式APNPayload.SimpleMsg   
//	        payload.setAlertMsg(new APNPayload.SimpleAlertMsg(content));  
//	        template.setAPNInfo(payload);  
//	        
//	        message.setData(template);  
////	        // 可选，1为wifi，0为不限制网络环境。根据手机处于的网络情况，决定是否下发  
////	        message.setPushNetWorkType(0);   
//	        List<Target> targets = new ArrayList<Target>();  
//	        for(String cid:cids){
//	            Target target = new Target();  
//	            target.setAppId(PushAccount.APP_ID);  
//	            target.setClientId(cid);
//	            targets.add(target);  
//	        }
//	          
//	        //推送前通过该接口申请“ContentID”  
//	        String contentId = push.getContentId(message);    
//	        IPushResult ret = push.pushMessageToList(contentId, targets); 
//	        System.out.println(ret.getResponse().toString());  
//	    }  
//	 
//	 public static void pushToApp(String title,String content){
//			NotificationTemplate template = new NotificationTemplate();
//	        // 设置APPID与APPKEY
//	        template.setAppId(PushAccount.APP_ID);
//	        template.setAppkey(PushAccount.APP_KEY);
//	        // 透传消息设置，1为强制启动应用，客户端接收到消息后就会立即启动应用；2为等待应用启动
//	        template.setTransmissionType(1);
//	        template.setTransmissionContent("透传信息");
//	 
//	        Style0 style = new Style0();
//	        // 设置通知栏标题与内容
//	        style.setTitle(title);
//	        style.setText(content);
//	        // 配置通知栏图标
//	        style.setLogo("icon.png");
//	        // 配置通知栏网络图标
//	        style.setLogoUrl("");
//	        // 设置通知是否响铃，震动，或者可清除
//	        style.setRing(true);
//	        style.setVibrate(true);
//	        style.setClearable(true);
//	        template.setStyle(style);
//	        
//	        IGtPush push = new IGtPush(PushAccount.APP_KEY, PushAccount.MASTER_SECRET);
//	        List<String> appIds = new ArrayList<String>();
//	        appIds.add(PushAccount.APP_ID);
//	 
//	        // 定义"AppMessage"类型消息对象，设置消息内容模板、发送的目标App列表、是否支持离线发送、以及离线消息有效期(单位毫秒)
//	        AppMessage message = new AppMessage();
//	        message.setData(template);
//	        message.setAppIdList(appIds);
//	        message.setOffline(true);
//	        message.setOfflineExpireTime(1000 * 600);
//	        push.pushMessageToApp(message);
//		}
//	 
////	 public static void pushToSingleUser(List<String> userId,String title,String content) throws IOException{  
////	        
////	        String pushText="{title:'"+title+"',content:'"+content+"',payload:'通知去干嘛这里可以自定义'}";  
////	        
////	        List<String>  cids= getUserCid(userId);
////	  
////	        IGtPush push = new IGtPush(appKey, masterSecret);  
////	        push.connect();  
////	        ListMessage message = new ListMessage();  
////	        message.setOffline(true);  
////	        // 离线有效时间，单位为毫秒，可选  
////	        message.setOfflineExpireTime(24 * 3600 * 1000);  
////	        //推送内容，格式为{title:'通知标题',content:'通知内容',payload:'通知去干嘛这里可以自定义'}  
////	        
////	        TransmissionTemplate template = new TransmissionTemplate();  
////	        template.setAppId(appId);  
////	        template.setAppkey(appKey);  
////	        template.setTransmissionContent(pushText);  
////	        template.setTransmissionType(2);  
////	        APNPayload payload = new APNPayload();  
////	        //payload.setBadge(0);  
////	        payload.setContentAvailable(1);  
////	        payload.setSound("default");  
////	        payload.setCategory("$由客户端定义");  
////	        //简单模式APNPayload.SimpleMsg   
////	        payload.setAlertMsg(new APNPayload.SimpleAlertMsg(content));  
////	        template.setAPNInfo(payload);  
////	        message.setData(template);  
////	        // 可选，1为wifi，0为不限制网络环境。根据手机处于的网络情况，决定是否下发  
////	        message.setPushNetWorkType(0);   
////	        List<Target> targets = new ArrayList<Target>();  
////	        for(String cid:cids){
////	            Target target = new Target();  
////	            target.setAppId(appId);  
////	            target.setClientId(cid);
////	            targets.add(target);  
////	        }
////	          
////	        //推送前通过该接口申请“ContentID”  
////	        String contentId = push.getContentId(message);    
////	        IPushResult ret = push.pushMessageToList(contentId, targets); 
////	        System.out.println(ret.getResponse().toString());  
////	    }  
//	public static void main(String[] args) {
////		pushMessageToSingle();
////		pushMessageToMultiple();
//		List<String> cids = new ArrayList<>();
//		cids.add("472cb6dfe12abcc302c0a2415782d164");
//		try {
//			pushToUser(cids,"只是一个测试","就是一个测试");
//		} catch (IOException e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}
//	}
//}
